function add() {
  var args = [].slice.call(arguments)


  var _add = function () {

    if (arguments.length === 0) {
      return args.reduce((a, b) => {
        return a + b
      })
    } else {
      [].push.apply(args, arguments)
      return _add
    }
  }

  return _add
}